import axios from "axios";
import router from "../router"

const NETWORK_ERROR = '网络请求异常，请稍后重试。。。。'
    //创建一个axios实例对象
const service = axios.create({
    baseURL: "http://127.0.0.1:8080",
    timeout: 30 * 1000
})

//在请求之前做一些事情
service.interceptors.request.use((req) => {
    //可以自定义header
    //jwt-token认证的时候
    let user = JSON.parse(localStorage.getItem("user") || "{}")
    req.headers['token'] = user.token; //设置请求头
    console.log(req.headers);
    return req
})

//在请求之后做一些事情
service.interceptors.response.use(response => {
    let res = response.data;

    //兼容服务器返回的字符串数据
    if (typeof res === 'string') {
        res = res ? JSON.parse(res) : res;
    }

    if (res.code === "401") {
        router.push('/');
    }

    return res;
}, error => {
    console.log('response error:' + error);
    return Promise.reject(error)
})

//封装的核心函数
function request(options) {

    // {
    //     method:"get",
    //     data:{

    //     }
    // }

    options.method = options.method || "get"
    if (options.method.toLowerCase() == "get") {
        options.params = options.data
    }

    return service(options)
}

export default request